/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.eps.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Renato
 */
@Entity
@Table(name = "Necesidades_Sumi")
@NamedQueries({
    @NamedQuery(name = "NecesidadesSumi.findAll", query = "SELECT n FROM NecesidadesSumi n"),
    @NamedQuery(name = "NecesidadesSumi.findByCodUniOrganizativa", query = "SELECT n FROM NecesidadesSumi n WHERE n.codUniOrganizativa = :codUniOrganizativa"),
    @NamedQuery(name = "NecesidadesSumi.findByCodCentroCosto", query = "SELECT n FROM NecesidadesSumi n WHERE n.codCentroCosto = :codCentroCosto"),
    @NamedQuery(name = "NecesidadesSumi.findByAno", query = "SELECT n FROM NecesidadesSumi n WHERE n.ano = :ano"),
    @NamedQuery(name = "NecesidadesSumi.findByIDSuministro", query = "SELECT n FROM NecesidadesSumi n WHERE n.iDSuministro = :iDSuministro"),
    @NamedQuery(name = "NecesidadesSumi.findByCantidadTotal", query = "SELECT n FROM NecesidadesSumi n WHERE n.cantidadTotal = :cantidadTotal"),
    @NamedQuery(name = "NecesidadesSumi.findByIdCodPresupuestal", query = "SELECT n FROM NecesidadesSumi n WHERE n.idCodPresupuestal = :idCodPresupuestal"),
    @NamedQuery(name = "NecesidadesSumi.findByFechaOperacion", query = "SELECT n FROM NecesidadesSumi n WHERE n.fechaOperacion = :fechaOperacion"),
    @NamedQuery(name = "NecesidadesSumi.findByIdNecesidad", query = "SELECT n FROM NecesidadesSumi n WHERE n.idNecesidad = :idNecesidad"),
    @NamedQuery(name = "NecesidadesSumi.findByIdProyecto", query = "SELECT n FROM NecesidadesSumi n WHERE n.idProyecto = :idProyecto"),
    @NamedQuery(name = "NecesidadesSumi.findByCantidadUsada", query = "SELECT n FROM NecesidadesSumi n WHERE n.cantidadUsada = :cantidadUsada")})
public class NecesidadesSumi implements Serializable {
    private static final long serialVersionUID = 1L;

   @Id
    @Basic(optional = false)
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = "id_necesidad")
    private Long idNecesidad;
     
    @Column(name = "cod_Uni_Organizativa")
    private String codUniOrganizativa;
    @Column(name = "Cod_CentroCosto")
    private String codCentroCosto;
    @Basic(optional = false)
    @Column(name = "ano")
    private String ano;
    @Basic(optional = false)
    @Column(name = "ID_Suministro")
    private String iDSuministro;
    @Basic(optional = false)
    @Column(name = "cantidad_total")
    private BigDecimal cantidadTotal;
    @Column(name = "cantidad_aprobada")
    private BigDecimal cantidadAprobada;
    @Column(name = "id_cod_presupuestal")
    private String idCodPresupuestal;
    @Basic(optional = false)
    @Column(name = "fecha_operacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaOperacion;
    @Column(name = "monto_total")
    private BigDecimal monto_total;
    @Column(name = "id_proyecto")
    private String idProyecto;
    @Basic(optional = false)
    @Column(name = "cantidad_usada")
    private BigDecimal cantidadUsada;
    @OneToMany( mappedBy = "necesidadesSumi")
    private List<NecesidadesSumiDetalle> necesidadesSumiDetalleList;
    @Column(name = "usuario")
    private String usuario;
    @Column(name = "mac")
    private String mac;
    @JoinColumn(name = "id_empresa", referencedColumnName = "id_empresa")
    @ManyToOne(optional = false)
    private Empresa empresa;

    public NecesidadesSumi() {
    }

    public NecesidadesSumi(Long idNecesidad) {
        this.idNecesidad = idNecesidad;
    }

    public NecesidadesSumi(Long idNecesidad, String ano, String iDSuministro, BigDecimal cantidadTotal, Date fechaOperacion, BigDecimal cantidadUsada) {
        this.idNecesidad = idNecesidad;
        this.ano = ano;
        this.iDSuministro = iDSuministro;
        this.cantidadTotal = cantidadTotal;
        this.fechaOperacion = fechaOperacion;
        this.cantidadUsada = cantidadUsada;
    }

    public String getMac() {
        return mac;
    }

    public void setMac(String mac) {
        this.mac = mac;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public Empresa getEmpresa() {
        return empresa;
    }

    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }

    public String getCodUniOrganizativa() {
        return codUniOrganizativa;
    }

    public void setCodUniOrganizativa(String codUniOrganizativa) {
        this.codUniOrganizativa = codUniOrganizativa;
    }

    public String getCodCentroCosto() {
        return codCentroCosto;
    }

    public void setCodCentroCosto(String codCentroCosto) {
        this.codCentroCosto = codCentroCosto;
    }

    public String getAno() {
        return ano;
    }

    public void setAno(String ano) {
        this.ano = ano;
    }

    public BigDecimal getCantidadAprobada() {
        return cantidadAprobada;
    }

    public void setCantidadAprobada(BigDecimal cantidadAprobada) {
        this.cantidadAprobada = cantidadAprobada;
    }

    public String getIDSuministro() {
        return iDSuministro;
    }

    public void setIDSuministro(String iDSuministro) {
        this.iDSuministro = iDSuministro;
    }

    public BigDecimal getCantidadTotal() {
        return cantidadTotal;
    }

    public void setCantidadTotal(BigDecimal cantidadTotal) {
        this.cantidadTotal = cantidadTotal;
    }

    public String getIdCodPresupuestal() {
        return idCodPresupuestal;
    }

    public void setIdCodPresupuestal(String idCodPresupuestal) {
        this.idCodPresupuestal = idCodPresupuestal;
    }

    public Date getFechaOperacion() {
        return fechaOperacion;
    }

    public void setFechaOperacion(Date fechaOperacion) {
        this.fechaOperacion = fechaOperacion;
    }

    public Long getIdNecesidad() {
        return idNecesidad;
    }

    public void setIdNecesidad(Long idNecesidad) {
        this.idNecesidad = idNecesidad;
    }

    public String getIdProyecto() {
        return idProyecto;
    }

    public void setIdProyecto(String idProyecto) {
        this.idProyecto = idProyecto;
    }

    public BigDecimal getCantidadUsada() {
        return cantidadUsada;
    }

    public void setCantidadUsada(BigDecimal cantidadUsada) {
        this.cantidadUsada = cantidadUsada;
    }

    public List<NecesidadesSumiDetalle> getNecesidadesSumiDetalleList() {
        return necesidadesSumiDetalleList;
    }

    public void setNecesidadesSumiDetalleList(List<NecesidadesSumiDetalle> necesidadesSumiDetalleList) {
        this.necesidadesSumiDetalleList = necesidadesSumiDetalleList;
    }

    public BigDecimal getMonto_total() {
        return monto_total;
    }

    public void setMonto_total(BigDecimal monto_total) {
        this.monto_total = monto_total;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idNecesidad != null ? idNecesidad.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof NecesidadesSumi)) {
            return false;
        }
        NecesidadesSumi other = (NecesidadesSumi) object;
        if ((this.idNecesidad == null && other.idNecesidad != null) || (this.idNecesidad != null && !this.idNecesidad.equals(other.idNecesidad))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.NecesidadesSumi[idNecesidad=" + idNecesidad + "]";
    }

}
